package mx.ipn.negocios.empleado;

import mx.ipn.negocios.CodigosDeError;
import mx.ipn.negocios.ConexionConPersistencia;
import mx.ipn.to.DiaFestivoTO;
import mx.ipn.to.TransferObject;

public class DiaFestivoBO {

	public static DiaFestivoTO agregarDiaFestivo(DiaFestivoTO diaFestivoTO) {
		DiaFestivoTO reciveTO = null;
		DiaFestivoTO respuestaTO = null;

		reciveTO = (DiaFestivoTO) ConexionConPersistencia.invocaServicio(
				"encontrarDiaFestivoPorMesDiaActivo", diaFestivoTO,
				DiaFestivoTO.class);
		if (reciveTO != null) {

			if (reciveTO.getTipoError() == 0) {
				respuestaTO = new DiaFestivoTO();
				respuestaTO.setTipoError(TransferObject.ERROR);
				respuestaTO.setError(CodigosDeError.error.get(34002));
			} else {
				try {
					int reciveIndice = (Integer) ConexionConPersistencia
							.invocaServicio("agregarDiaFestivo", diaFestivoTO,
									Integer.class);
					if (reciveIndice > 0) {
						respuestaTO = new DiaFestivoTO();
						respuestaTO.setError(CodigosDeError.error.get(34003));
					} else {
						respuestaTO = new DiaFestivoTO();
						respuestaTO.setTipoError(TransferObject.ERROR);
						respuestaTO.setError(CodigosDeError.error.get(34004));
					}

				} catch (Exception e) {
					respuestaTO = new DiaFestivoTO();
					respuestaTO.setTipoError(TransferObject.ERROR);
					respuestaTO.setError(CodigosDeError.error.get(34001));
				}
			}
		} else {
			respuestaTO = new DiaFestivoTO();
			respuestaTO.setTipoError(TransferObject.ERROR);
			respuestaTO.setError(CodigosDeError.error.get(34001));
		}

		return respuestaTO;
	}

	public static DiaFestivoTO modificarDiaFestivo(DiaFestivoTO diaFestivoTO) {
		DiaFestivoTO reciveTO = null;
		DiaFestivoTO respuestaTO = null;

		reciveTO = (DiaFestivoTO) ConexionConPersistencia.invocaServicio(
				"encontrarDiaFestivoPorMesDiaActivo", diaFestivoTO
						.getIdDiaFestivo(), DiaFestivoTO.class);
		if (reciveTO != null) {

			if (reciveTO.getTipoError() == 0
					&& reciveTO.getIdDiaFestivo() != diaFestivoTO
							.getIdDiaFestivo()) {
				respuestaTO = new DiaFestivoTO();
				respuestaTO.setTipoError(TransferObject.ERROR);
				respuestaTO.setError(CodigosDeError.error.get(34002));
			} else {
				try {
					short recive = (Short) ConexionConPersistencia
							.invocaServicio("modificarDiaFestivo",
									diaFestivoTO, Short.class);
					if (recive == (short) 1) {
						respuestaTO = new DiaFestivoTO();
						respuestaTO.setError(CodigosDeError.error.get(34003));
					} else {
						respuestaTO = new DiaFestivoTO();
						respuestaTO.setTipoError(TransferObject.ERROR);
						respuestaTO.setError(CodigosDeError.error.get(34004));
					}

				} catch (Exception e) {
					respuestaTO = new DiaFestivoTO();
					respuestaTO.setTipoError(TransferObject.ERROR);
					respuestaTO.setError(CodigosDeError.error.get(34001));
				}
			}

		} else {
			respuestaTO = new DiaFestivoTO();
			respuestaTO.setTipoError(TransferObject.ERROR);
			respuestaTO.setError(CodigosDeError.error.get(34001));
		}

		return respuestaTO;
	}

	public static DiaFestivoTO[] encontrarDiasFestivosActivos() {
		DiaFestivoTO[] reciveTO = null;
		DiaFestivoTO respuestaTO = null;

		reciveTO = (DiaFestivoTO[]) ConexionConPersistencia.invocaServicio(
				"encontrarDiasFestivosActivos", DiaFestivoTO[].class);
		if (reciveTO != null) {
			if (reciveTO[0].getTipoError() != 0) {
				respuestaTO = new DiaFestivoTO();
				respuestaTO.setTipoError(TransferObject.ERROR);
				respuestaTO.setError(CodigosDeError.error.get(34005));
				reciveTO[0] = respuestaTO;
			}
		} else {
			reciveTO = new DiaFestivoTO[1];
			respuestaTO = new DiaFestivoTO();
			respuestaTO.setTipoError(TransferObject.ERROR);
			respuestaTO.setError(CodigosDeError.error.get(34001));
			reciveTO[0] = respuestaTO;
		}

		return reciveTO;
	}

	public static DiaFestivoTO bajaDiaFestivo(DiaFestivoTO diaFestivoTO) {
		DiaFestivoTO respuestaTO = null;

		diaFestivoTO.setActivo(false);
		try {
			short recive = (Short) ConexionConPersistencia.invocaServicio(
					"modificarDiaFestivo", diaFestivoTO, Short.class);
			if (recive == (short) 1) {
				respuestaTO = new DiaFestivoTO();
				respuestaTO.setError(CodigosDeError.error.get(34006));
			} else {
				respuestaTO = new DiaFestivoTO();
				respuestaTO.setTipoError(TransferObject.ERROR);
				respuestaTO.setError(CodigosDeError.error.get(34004));
			}

		} catch (Exception e) {
			respuestaTO = new DiaFestivoTO();
			respuestaTO.setTipoError(TransferObject.ERROR);
			respuestaTO.setError(CodigosDeError.error.get(34001));
		}
		return respuestaTO;
	}

	public static DiaFestivoTO encontrarDiaFestivoPorMesDiaActivo(
			DiaFestivoTO diaFestivoTO) {
		DiaFestivoTO respuestaTO = null;

		respuestaTO = (DiaFestivoTO) ConexionConPersistencia.invocaServicio(
				"encontrarDiaFestivoPorMesDiaActivo", diaFestivoTO,
				DiaFestivoTO.class);
		if (respuestaTO != null) {
			if (respuestaTO.getTipoError() == 1) {
				respuestaTO = new DiaFestivoTO();
				respuestaTO.setError(CodigosDeError.error.get(34005));
			} else {
				// si encontro la combinacion
			}
		} else {
			respuestaTO = new DiaFestivoTO();
			respuestaTO.setTipoError(TransferObject.ERROR);
			respuestaTO.setError(CodigosDeError.error.get(34001));
		}

		return respuestaTO;
	}

}
